<template>
  <div class="page_root" :key="queryUpdateFlag" data-page-name="我的月报" data-page-identification="w_0t99ah6jy8">
    <a-spin :spinning="pageLoading.loading" :tip="pageLoading.tip">
      <!-- begin vid_7fet32ae5r 对话框_v4c3kmppab -->
      <a-modal
        class="vid_7fet32ae5r"
        v-model:visible="vid_7fet32ae5r_props.visible"
        :centered="true"
        :title="'新增里程碑'"
        :maskClosable="false"
        :width="1000"
        @cancel="handle_vid_7fet32ae5r_cancel"
        @ok="handle_vid_7fet32ae5r_ok"
      >
        <!-- begin vid_kkv9lo9h9t 容器_v7iywovr0c -->
        <al-box class="vid_kkv9lo9h9t">
          <!-- begin vid_upnskihzui 表单容器_qymbyeu595 -->
          <a-form class="vid_upnskihzui" :model="h_nkptwwdgnh" :formModel="vid_upnskihzui_props.formModel">
            <!-- begin vid_immwhehj0g 布局容器_z2aoa12puj -->
            <a-row class="vid_immwhehj0g">
              <a-col :span="8">
                <!-- begin vid_p5dz96cwzy 表单项容器_dkddb0ll0b -->
                <a-form-item name="r_0bbqey9g6p" :rules="h_nkptwwdgnh_rules[`r_0bbqey9g6p`]" class="vid_p5dz96cwzy" :label-col='{"span":8}' :wrapper-col='{"span":16}'>
                  <!-- begin vid_ispq0vs1ru 日期_pwj106rmxa -->
                  <a-date-picker
                    class="vid_ispq0vs1ru"
                    :getPopupContainer="(node) => node.parentNode"
                    v-model:value="h_nkptwwdgnh.r_0bbqey9g6p"
                    :format="'YYYY-MM-DD HH:mm:ss'"
                    :valueFormat="'YYYY-MM-DD HH:mm:ss'"
                    :showTime="vid_ispq0vs1ru_props.showTime"
                  >
                  </a-date-picker>
                  <!-- end vid_ispq0vs1ru 日期_pwj106rmxa -->
                  <template #label>
                    <!-- begin vid_vj4i3eaanr 简单文本_65ryfdfb0c -->
                    <span class="vid_vj4i3eaanr"> 工时提交日期 </span>
                    <!-- end vid_vj4i3eaanr 简单文本_65ryfdfb0c -->
                  </template>
                </a-form-item>
                <!-- end vid_p5dz96cwzy 表单项容器_dkddb0ll0b -->
              </a-col>
              <a-col :span="8"> </a-col>
              <a-col :span="8"> </a-col>
            </a-row>
            <!-- end vid_immwhehj0g 布局容器_z2aoa12puj -->
            <!-- begin vid_70uh4amu7u 容器_514v739r7y -->
            <al-box class="vid_70uh4amu7u"> </al-box>
            <!-- end vid_70uh4amu7u 容器_514v739r7y -->
            <!-- begin vid_py3ac8vcx7 容器_dp59talxdx -->
            <al-box class="vid_py3ac8vcx7">
              <!-- begin vid_4d8wlqijun 简单文本_djo0w2vsfu -->
              <span class="vid_4d8wlqijun"> 选择日报类型 </span>
              <!-- end vid_4d8wlqijun 简单文本_djo0w2vsfu -->
            </al-box>
            <!-- end vid_py3ac8vcx7 容器_dp59talxdx -->
            <!-- begin vid_wb8aa1o58o 表单容器_aljwt0e3eb -->
            <a-form class="vid_wb8aa1o58o" :model="m_ntu81k34ox" :formModel="vid_wb8aa1o58o_props.formModel">
              <!-- begin vid_c91lxpzjh7 标签页_ij9ecvioxv -->
              <a-tabs class="vid_c91lxpzjh7" v-model:activeKey="vid_c91lxpzjh7_props.activeKey">
                <template #leftExtra> </template>
                <template #rightExtra> </template>
                <a-tab-pane key="Tab1" force-render>
                  <template #tab> 项目 </template>
                  <!-- begin vid_cvdou6bbju 动作列表_n91vdhs9i2 -->
                  <al-action-list
                    data-field-key="f_uk1bbft4jy"
                    class="vid_cvdou6bbju"
                    v-model:dataSource="vid_cvdou6bbju_props.dataSource"
                    v-model:extendDataSource="vid_cvdou6bbju_props.dataSource"
                    v-model:current="vid_cvdou6bbju_props.current"
                    v-model:currentIndex="vid_cvdou6bbju_props.currentIndex"
                  >
                    <template #default="vid_cvdou6bbju_dataItem">
                      <!-- begin vid_dmaqr4qigg 布局容器_8y9a9xosum -->
                      <a-row :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_dmaqr4qigg" :slots="'8:8:8:8:16'">
                        <a-col :span="8">
                          <!-- begin vid_e76xv46kag 表单项容器_don40vrwaw -->
                          <a-form-item
                            :name="setSubFormName(vid_cvdou6bbju_dataItem,`v_vzfhvq03bg`)"
                            :rules="m_ntu81k34ox_rules[`v_vzfhvq03bg`]"
                            :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                            class="vid_e76xv46kag"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_ydy88914uj 单选按钮组_sqjj0u5ubt -->
                            <a-radio-group
                              :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                              class="vid_ydy88914uj"
                              v-model:value="vid_ydy88914uj_props.value"
                              :selected="vid_ydy88914uj_props.selected"
                              :options="vid_ydy88914uj_options()"
                              @change="handle_vid_ydy88914uj_change"
                            >
                            </a-radio-group>
                            <!-- end vid_ydy88914uj 单选按钮组_sqjj0u5ubt -->
                            <template #label>
                              <!-- begin vid_e5vqp0sj1f 简单文本_d26yayt9uj -->
                              <span :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_e5vqp0sj1f"> 请选择 </span>
                              <!-- end vid_e5vqp0sj1f 简单文本_d26yayt9uj -->
                            </template>
                          </a-form-item>
                          <!-- end vid_e76xv46kag 表单项容器_don40vrwaw -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_6duqfv8xhx 表单项容器_qe9gpuh4nm -->
                          <a-form-item
                            :name="setSubFormName(vid_cvdou6bbju_dataItem,`i_f5hsv6y7u0`)"
                            :rules="m_ntu81k34ox_rules[`i_f5hsv6y7u0`]"
                            :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                            class="vid_6duqfv8xhx"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_va7sq26olk 下拉框_go9yd7moxf -->
                            <a-select
                              :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                              class="vid_va7sq26olk"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_va7sq26olk_props.value"
                              :showArrow="true"
                              :filterOption="false"
                              :dropdownMatchSelectWidth="true"
                              :searchValue="vid_va7sq26olk_props.searchValue"
                              :selected="vid_va7sq26olk_props.selected"
                              :options="vid_va7sq26olk_options()"
                              @change="handle_vid_va7sq26olk_change"
                              @search="handle_vid_va7sq26olk_search"
                            >
                            </a-select>
                            <!-- end vid_va7sq26olk 下拉框_go9yd7moxf -->
                            <template #label>
                              <!-- begin vid_ybkucsx3rs 简单文本_w25ox1x7wb -->
                              <span :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_ybkucsx3rs"> 项目名称或代号 </span>
                              <!-- end vid_ybkucsx3rs 简单文本_w25ox1x7wb -->
                            </template>
                          </a-form-item>
                          <!-- end vid_6duqfv8xhx 表单项容器_qe9gpuh4nm -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_6dv294fd7b 表单项容器_ndsz7awrq5 -->
                          <a-form-item
                            :name="setSubFormName(vid_cvdou6bbju_dataItem,`m_lnpjts9fw4`)"
                            :rules="m_ntu81k34ox_rules[`m_lnpjts9fw4`]"
                            :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                            class="vid_6dv294fd7b"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_l4vlzpa9hg 输入框_osx9mpe5l2 -->
                            <a-input autocomplete="off" :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_l4vlzpa9hg" v-model:value="vid_l4vlzpa9hg_props.value"> </a-input>
                            <!-- end vid_l4vlzpa9hg 输入框_osx9mpe5l2 -->
                            <template #label>
                              <!-- begin vid_yyzyt7wtmx 简单文本_yb3hq4ulea -->
                              <span :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_yyzyt7wtmx"> 任务 </span>
                              <!-- end vid_yyzyt7wtmx 简单文本_yb3hq4ulea -->
                            </template>
                          </a-form-item>
                          <!-- end vid_6dv294fd7b 表单项容器_ndsz7awrq5 -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_csojklxhta 表单项容器_px96zx07v5 -->
                          <a-form-item
                            :name="setSubFormName(vid_cvdou6bbju_dataItem,`f_67s95rxxx6`)"
                            :rules="m_ntu81k34ox_rules[`f_67s95rxxx6`]"
                            :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                            class="vid_csojklxhta"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_qfr317cea4 输入框_i0vj6027nf -->
                            <a-input autocomplete="off" :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_qfr317cea4" v-model:value="vid_qfr317cea4_props.value"> </a-input>
                            <!-- end vid_qfr317cea4 输入框_i0vj6027nf -->
                            <template #label>
                              <!-- begin vid_4msu7mam5n 简单文本_eiayjjbn2n -->
                              <span :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_4msu7mam5n"> 工时 </span>
                              <!-- end vid_4msu7mam5n 简单文本_eiayjjbn2n -->
                            </template>
                          </a-form-item>
                          <!-- end vid_csojklxhta 表单项容器_px96zx07v5 -->
                        </a-col>
                        <a-col :span="16">
                          <!-- begin vid_b94nxxyhny 表单项容器_7m9mc0ehoo -->
                          <a-form-item
                            :name="setSubFormName(vid_cvdou6bbju_dataItem,`p_efkhf2ask8`)"
                            :rules="m_ntu81k34ox_rules[`p_efkhf2ask8`]"
                            :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex"
                            class="vid_b94nxxyhny"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_k8d4b3m3ux 输入框_h20ub4m2nz -->
                            <a-input autocomplete="off" :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_k8d4b3m3ux" v-model:value="vid_k8d4b3m3ux_props.value"> </a-input>
                            <!-- end vid_k8d4b3m3ux 输入框_h20ub4m2nz -->
                            <template #label>
                              <!-- begin vid_d6vff26h78 简单文本_jbxzb70c10 -->
                              <span :data-cycle-index="vid_cvdou6bbju_dataItem.cycleIndex" class="vid_d6vff26h78"> 工作内容 </span>
                              <!-- end vid_d6vff26h78 简单文本_jbxzb70c10 -->
                            </template>
                          </a-form-item>
                          <!-- end vid_b94nxxyhny 表单项容器_7m9mc0ehoo -->
                        </a-col>
                      </a-row>
                      <!-- end vid_dmaqr4qigg 布局容器_8y9a9xosum -->
                    </template>
                  </al-action-list>
                  <!-- end vid_cvdou6bbju 动作列表_n91vdhs9i2 -->
                </a-tab-pane>
                <a-tab-pane key="Tab2" force-render>
                  <template #tab> 客户 </template>
                  <!-- begin vid_5dqanginau 动作列表_nknlibtt7q -->
                  <al-action-list
                    data-field-key="n_7lh1pw6zi5"
                    class="vid_5dqanginau"
                    v-model:dataSource="vid_5dqanginau_props.dataSource"
                    v-model:extendDataSource="vid_5dqanginau_props.dataSource"
                    v-model:current="vid_5dqanginau_props.current"
                    v-model:currentIndex="vid_5dqanginau_props.currentIndex"
                  >
                    <template #default="vid_5dqanginau_dataItem">
                      <!-- begin vid_r1vx8r1h9d 布局容器_7vwlni0l5r -->
                      <a-row :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_r1vx8r1h9d" :slots="'8:8:8:8:16'">
                        <a-col :span="8">
                          <!-- begin vid_in294urpf3 表单项容器_nz89w3nkyx -->
                          <a-form-item
                            :name="setSubFormName(vid_5dqanginau_dataItem,`t_3csbffeby4`)"
                            :rules="m_ntu81k34ox_rules[`t_3csbffeby4`]"
                            :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                            class="vid_in294urpf3"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_bmwl9qiakl 单选按钮组_rjavhezp2s -->
                            <a-radio-group
                              :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                              class="vid_bmwl9qiakl"
                              v-model:value="vid_bmwl9qiakl_props.value"
                              :selected="vid_bmwl9qiakl_props.selected"
                              :options="vid_bmwl9qiakl_options()"
                              @change="handle_vid_bmwl9qiakl_change"
                            >
                            </a-radio-group>
                            <!-- end vid_bmwl9qiakl 单选按钮组_rjavhezp2s -->
                            <template #label>
                              <!-- begin vid_u89t6d3j6u 简单文本_8jiuzdjlam -->
                              <span :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_u89t6d3j6u"> 请选择 </span>
                              <!-- end vid_u89t6d3j6u 简单文本_8jiuzdjlam -->
                            </template>
                          </a-form-item>
                          <!-- end vid_in294urpf3 表单项容器_nz89w3nkyx -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_9ciqxv31bc 表单项容器_nbu4h5mb8s -->
                          <a-form-item
                            :name="setSubFormName(vid_5dqanginau_dataItem,`m_cxrg674o97`)"
                            :rules="m_ntu81k34ox_rules[`m_cxrg674o97`]"
                            :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                            class="vid_9ciqxv31bc"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_0jm376a9a1 下拉框_87uvpivvon -->
                            <a-select
                              :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                              class="vid_0jm376a9a1"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_0jm376a9a1_props.value"
                              :showArrow="true"
                              :filterOption="false"
                              :dropdownMatchSelectWidth="true"
                              :searchValue="vid_0jm376a9a1_props.searchValue"
                              :selected="vid_0jm376a9a1_props.selected"
                              :options="vid_0jm376a9a1_options()"
                              @change="handle_vid_0jm376a9a1_change"
                              @search="handle_vid_0jm376a9a1_search"
                            >
                            </a-select>
                            <!-- end vid_0jm376a9a1 下拉框_87uvpivvon -->
                            <template #label>
                              <!-- begin vid_wmiix44md6 简单文本_jwojix5sor -->
                              <span :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_wmiix44md6"> 客户或生态伙伴 </span>
                              <!-- end vid_wmiix44md6 简单文本_jwojix5sor -->
                            </template>
                          </a-form-item>
                          <!-- end vid_9ciqxv31bc 表单项容器_nbu4h5mb8s -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_w8k6py2wo6 表单项容器_70s434jkz4 -->
                          <a-form-item
                            :name="setSubFormName(vid_5dqanginau_dataItem,`p_amg1g8bd12`)"
                            :rules="m_ntu81k34ox_rules[`p_amg1g8bd12`]"
                            :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                            class="vid_w8k6py2wo6"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_iqhjlgmm64 下拉框_icebebjv3s -->
                            <a-select
                              :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                              class="vid_iqhjlgmm64"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_iqhjlgmm64_props.value"
                              :showArrow="true"
                              :filterOption="false"
                              :dropdownMatchSelectWidth="true"
                              :searchValue="vid_iqhjlgmm64_props.searchValue"
                              :selected="vid_iqhjlgmm64_props.selected"
                              :options="vid_iqhjlgmm64_options()"
                              @change="handle_vid_iqhjlgmm64_change"
                              @search="handle_vid_iqhjlgmm64_search"
                            >
                            </a-select>
                            <!-- end vid_iqhjlgmm64 下拉框_icebebjv3s -->
                            <template #label>
                              <!-- begin vid_jlw5e7ag84 简单文本_rxwwmyub1t -->
                              <span :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_jlw5e7ag84"> 工时 </span>
                              <!-- end vid_jlw5e7ag84 简单文本_rxwwmyub1t -->
                            </template>
                          </a-form-item>
                          <!-- end vid_w8k6py2wo6 表单项容器_70s434jkz4 -->
                        </a-col>
                        <a-col :span="8">
                          <!-- begin vid_mot1fc4bhe 表单项容器_wl9jbmha6k -->
                          <a-form-item
                            :name="setSubFormName(vid_5dqanginau_dataItem,`y_61ggz5gd78`)"
                            :rules="m_ntu81k34ox_rules[`y_61ggz5gd78`]"
                            :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                            class="vid_mot1fc4bhe"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_ot2i17c9gn 输入框_ucx6lbh03x -->
                            <a-input autocomplete="off" :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_ot2i17c9gn" v-model:value="vid_ot2i17c9gn_props.value"> </a-input>
                            <!-- end vid_ot2i17c9gn 输入框_ucx6lbh03x -->
                            <template #label>
                              <!-- begin vid_z0l7nh4pa9 简单文本_jt515hqve6 -->
                              <span :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_z0l7nh4pa9"> 最新进展 </span>
                              <!-- end vid_z0l7nh4pa9 简单文本_jt515hqve6 -->
                            </template>
                          </a-form-item>
                          <!-- end vid_mot1fc4bhe 表单项容器_wl9jbmha6k -->
                        </a-col>
                        <a-col :span="16">
                          <!-- begin vid_sri30pi4q1 表单项容器_ghqb6mh9xe -->
                          <a-form-item
                            :name="setSubFormName(vid_5dqanginau_dataItem,`o_wb0fv0gd20`)"
                            :rules="m_ntu81k34ox_rules[`o_wb0fv0gd20`]"
                            :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex"
                            class="vid_sri30pi4q1"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_8eacwbz8o2 输入框_d2e8q5xjrh -->
                            <a-input autocomplete="off" :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_8eacwbz8o2" v-model:value="vid_8eacwbz8o2_props.value"> </a-input>
                            <!-- end vid_8eacwbz8o2 输入框_d2e8q5xjrh -->
                            <template #label>
                              <!-- begin vid_vk5k12syst 简单文本_ykqtgxiu43 -->
                              <span :data-cycle-index="vid_5dqanginau_dataItem.cycleIndex" class="vid_vk5k12syst"> 下一步计划 </span>
                              <!-- end vid_vk5k12syst 简单文本_ykqtgxiu43 -->
                            </template>
                          </a-form-item>
                          <!-- end vid_sri30pi4q1 表单项容器_ghqb6mh9xe -->
                        </a-col>
                      </a-row>
                      <!-- end vid_r1vx8r1h9d 布局容器_7vwlni0l5r -->
                    </template>
                  </al-action-list>
                  <!-- end vid_5dqanginau 动作列表_nknlibtt7q -->
                </a-tab-pane>
                <a-tab-pane key="Tab3" force-render>
                  <template #tab> 其他 </template>
                  <!-- begin vid_3np6b9tth2 动作列表_mojjgvzwj3 -->
                  <al-action-list
                    data-field-key="z_lr68mw8g4h"
                    class="vid_3np6b9tth2"
                    v-model:dataSource="vid_3np6b9tth2_props.dataSource"
                    v-model:extendDataSource="vid_3np6b9tth2_props.dataSource"
                    v-model:current="vid_3np6b9tth2_props.current"
                    v-model:currentIndex="vid_3np6b9tth2_props.currentIndex"
                  >
                    <template #default="vid_3np6b9tth2_dataItem">
                      <!-- begin vid_l65fqu3y0m 布局容器_yg7n4pac8z -->
                      <a-row :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex" class="vid_l65fqu3y0m" :slots="'8:16'">
                        <a-col :span="8">
                          <!-- begin vid_lva329qy1d 表单项容器_3ykbq07s9o -->
                          <a-form-item
                            :name="setSubFormName(vid_3np6b9tth2_dataItem,`h_maxxy7w2z7`)"
                            :rules="m_ntu81k34ox_rules[`h_maxxy7w2z7`]"
                            :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex"
                            class="vid_lva329qy1d"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_d1m0u16dt5 下拉框_7p8heo8f6v -->
                            <a-select
                              :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex"
                              class="vid_d1m0u16dt5"
                              :getPopupContainer="(node) => node.parentNode"
                              v-model:value="vid_d1m0u16dt5_props.value"
                              :showArrow="true"
                              :filterOption="false"
                              :dropdownMatchSelectWidth="true"
                              :searchValue="vid_d1m0u16dt5_props.searchValue"
                              :selected="vid_d1m0u16dt5_props.selected"
                              :options="vid_d1m0u16dt5_options()"
                              @change="handle_vid_d1m0u16dt5_change"
                              @search="handle_vid_d1m0u16dt5_search"
                            >
                            </a-select>
                            <!-- end vid_d1m0u16dt5 下拉框_7p8heo8f6v -->
                            <template #label>
                              <!-- begin vid_vcqlag6ozu 简单文本_wef91hvldc -->
                              <span :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex" class="vid_vcqlag6ozu"> 工时 </span>
                              <!-- end vid_vcqlag6ozu 简单文本_wef91hvldc -->
                            </template>
                          </a-form-item>
                          <!-- end vid_lva329qy1d 表单项容器_3ykbq07s9o -->
                        </a-col>
                        <a-col :span="16">
                          <!-- begin vid_g6xy2i6rfs 表单项容器_6fj8ufu4a0 -->
                          <a-form-item
                            :name="setSubFormName(vid_3np6b9tth2_dataItem,`j_7swh1c51p7`)"
                            :rules="m_ntu81k34ox_rules[`j_7swh1c51p7`]"
                            :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex"
                            class="vid_g6xy2i6rfs"
                            :label-col='{"span":24}'
                            :wrapper-col='{"span":24}'
                          >
                            <!-- begin vid_u33p047cqw 输入框_18wi5l2840 -->
                            <a-input autocomplete="off" :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex" class="vid_u33p047cqw" v-model:value="vid_u33p047cqw_props.value"> </a-input>
                            <!-- end vid_u33p047cqw 输入框_18wi5l2840 -->
                            <template #label>
                              <!-- begin vid_uoku1qi59v 简单文本_bz4h6nhtgw -->
                              <span :data-cycle-index="vid_3np6b9tth2_dataItem.cycleIndex" class="vid_uoku1qi59v"> 工作内容 </span>
                              <!-- end vid_uoku1qi59v 简单文本_bz4h6nhtgw -->
                            </template>
                          </a-form-item>
                          <!-- end vid_g6xy2i6rfs 表单项容器_6fj8ufu4a0 -->
                        </a-col>
                      </a-row>
                      <!-- end vid_l65fqu3y0m 布局容器_yg7n4pac8z -->
                    </template>
                  </al-action-list>
                  <!-- end vid_3np6b9tth2 动作列表_mojjgvzwj3 -->
                </a-tab-pane>
              </a-tabs>
              <!-- end vid_c91lxpzjh7 标签页_ij9ecvioxv -->
            </a-form>
            <!-- end vid_wb8aa1o58o 表单容器_aljwt0e3eb -->
          </a-form>
          <!-- end vid_upnskihzui 表单容器_qymbyeu595 -->
        </al-box>
        <!-- end vid_kkv9lo9h9t 容器_v7iywovr0c -->
      </a-modal>
      <!-- end vid_7fet32ae5r 对话框_v4c3kmppab -->
      <!-- begin vid_6iwz2ocdim 布局容器_1xabkgwyuj -->
      <a-row class="vid_6iwz2ocdim" :slots="'12:12'">
        <a-col :span="12">
          <!-- begin vid_ab7quihaj3 容器_9ln16yh1b7 -->
          <al-box class="vid_ab7quihaj3">
            <!-- begin vid_19ogtmwtkw 我的月报 -->
            <span class="vid_19ogtmwtkw"> 我的月报 </span>
            <!-- end vid_19ogtmwtkw 我的月报 -->
          </al-box>
          <!-- end vid_ab7quihaj3 容器_9ln16yh1b7 -->
        </a-col>
        <a-col :span="12">
          <!-- begin vid_ipdla4ayd4 容器_vsxp8xzvkz -->
          <al-box class="vid_ipdla4ayd4"> </al-box>
          <!-- end vid_ipdla4ayd4 容器_vsxp8xzvkz -->
        </a-col>
      </a-row>
      <!-- end vid_6iwz2ocdim 布局容器_1xabkgwyuj -->
      <!-- begin vid_6zqqvkzz4x 容器_90gawcu4e4 -->
      <al-box class="vid_6zqqvkzz4x">
        <!-- begin vid_adtzo2ckfq 表格_7pocajidec -->
        <!-- 表格_7pocajidec -->
        <a-table
          class="vid_adtzo2ckfq"
          :totalNumber="vid_adtzo2ckfq_props.totalNumber"
          :bordered="true"
          :editRowSaveLoading="vid_adtzo2ckfq_props.editRowSaveLoading"
          :sorter="vid_adtzo2ckfq_props.sorter"
          :currentRow="vid_adtzo2ckfq_props.currentRow"
          :selectedRowList="vid_adtzo2ckfq_props.selectedRowList"
          :data-source="vid_adtzo2ckfq_options()"
          @change="handle_vid_adtzo2ckfq_change"
          :columns="vid_adtzo2ckfq_columns"
          :pagination="vid_adtzo2ckfq_pagination"
          row-key="id"
          @resizeColumn="(w, col) => handleResizeColumn(w, col, 'vid_adtzo2ckfq')"
          :scroll="{ x: 'max-content', scrollToFirstRowOnChange: true, }"
          :row-class-name="(_record, index) => (index % 2 === 1 ? 'table-striped-even' : 'table-striped-odd')"
        >
          <template #headerCell="{ title, column }">
            <TableHeaderCell :title="title" :column="column" />
          </template>
          <template #bodyCell="{ text, column, record, index }">
            <!-- 序号列 -->
            <template v-if="column && column.dataIndex === 'vid_adtzo2ckfq_serialNumber'">
              {{ index + 1 }}
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"项目代号"} 列内容 -->
            <template v-if="column.dataIndex === 'reportedBy' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"任务名称"} 列内容 -->
            <template v-if="column.dataIndex === 'dailyDate' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"任务工时"} 列内容 -->
            <template v-if="column.dataIndex === 'customer' && !column.customRender">
              <number-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"工作内容"} 列内容 -->
            <template v-if="column.dataIndex === 'workingHours' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"任务工时占比"} 列内容 -->
            <template v-if="column.dataIndex === 'text' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"项目投入工时"} 列内容 -->
            <template v-if="column.dataIndex === 'custom' && !column.customRender">
              <date-picker-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"项目工时占比"} 列内容 -->
            <template v-if="column.dataIndex === 'custom2' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
            <!-- {"type":"value","dataType":"STRING","rawDataType":"STRING","link":"","value":"月工时"} 列内容 -->
            <template v-if="column.dataIndex === 'custom3' && !column.customRender">
              <text-table-cell
                :rowData="record"
                :conditionValueMap="vid_adtzo2ckfq_props.boundaryValueMap"
                :dataSource="vid_adtzo2ckfq_props.contentDataSource[column.dataIndex]"
                :columnsConfig="column"
                :value="text"
              />
            </template>
          </template>
        </a-table>
        <!-- end vid_adtzo2ckfq 表格_7pocajidec -->
      </al-box>
      <!-- end vid_6zqqvkzz4x 容器_90gawcu4e4 -->
    </a-spin>
  </div>
</template>
<script setup lang="tsx">
  import {
      h, ref, reactive, toRaw, markRaw, watch, computed,
      onBeforeMount, onMounted, onBeforeUnmount, onUnmounted, onActivated, onDeactivated
    } from "vue";
    import { useRoute, useRouter } from 'vue-router';
    const router = useRouter();
    const route = useRoute();
    import { get, post, put, del, request, requestWithHeaders } from '@/utils/http/Axios';
    import { cloneDeep, localGet, merge, getDifferenceArray, traversalTreeStructure, checkCaseCondition, renderStringInTemplate, handleBreadcrumbJump, throttle, permission, getComponentParamsValue } from '@/utils/index';
    import { isNullOrEmpty, isEmptyArr, isNullOrUnDef, isContained, isArray, isEmpty, isObject } from '@/utils/is';
    import dayjs from 'dayjs';
    import { getPagePcChartsDataSourceConvert } from '@/utils/chart';
    import { message, notification, Modal } from 'ant-design-vue'
    import { propertyFormatByNumber, propertyFormatByPercentage, propertyFormatByDate, parseSubFromDataList } from '@/utils/format';
    import colorTheme from '@/design/custom-theme.json';
    
    import UserTableRecords from '@/model/UserTableRecords';
    import { getAppBaseUrl } from '@/utils/index';
    import { sendToken } from "@/hooks/useIframeToken";
    import { useSystemStore } from "@/store/modules/system";
    const systemStore = useSystemStore();
    

  import TextTableCell from '@/components/page/tableCell/text.vue';
  import TooltipTableCell from '@/components/page/tableCell/tooltip.vue';
  import NumberTableCell from '@/components/page/tableCell/number.vue';
  import ProgressTableCell from '@/components/page/tableCell/progress.vue';
  import OptionsTableCell from '@/components/page/tableCell/options.vue';
  import MultipleOptionsTableCell from '@/components/page/tableCell/multipleOptions.vue';
  import DatePickerTableCell from '@/components/page/tableCell/datePicker.vue';
  import RangePickerTableCell from '@/components/page/tableCell/rangePicker.vue';
  import RangeNumberTableCell from '@/components/page/tableCell/rangeNumber.vue';
  import BoolTableCell from '@/components/page/tableCell/bool.vue';
  import TableHeaderCell from '@/components/page/TableHeaderCell.vue';

      // 获取传入的流程ID和组件参数
      const props = defineProps({
            'processInstanceId': {
            type: [String,Number,Boolean],
            default: undefined,
        },
      })
      const immediateWatch = (source, callback) => {
        watch(source, callback, {deep: true,immediate: true })
      }



  /* -------------------------- 属性定义 -------------------------- */

      const setTimeOutList = [];
      const pageLoading = reactive({
        loading: false,
        tip: undefined
      });
      const authInfo = localGet('app-user-store');

    const vid_7fet32ae5r_props = reactive({
          visible: false,
      confirmLoading: undefined,
  })

    const vid_upnskihzui_props = reactive({
          formModel: {"r_0bbqey9g6p":"","j_7swh1c51p7":"","h_maxxy7w2z7":"","o_wb0fv0gd20":"","y_61ggz5gd78":"","p_amg1g8bd12":"","m_cxrg674o97":"","t_3csbffeby4":"","p_efkhf2ask8":"","f_67s95rxxx6":"","m_lnpjts9fw4":"","i_f5hsv6y7u0":"","v_vzfhvq03bg":""},
  })

    const vid_ispq0vs1ru_props = reactive({
          showTime: undefined,
      value: "",
  })

    const vid_wb8aa1o58o_props = reactive({
          formModel: {"j_7swh1c51p7":"","h_maxxy7w2z7":"","o_wb0fv0gd20":"","y_61ggz5gd78":"","p_amg1g8bd12":"","m_cxrg674o97":"","t_3csbffeby4":"","p_efkhf2ask8":"","f_67s95rxxx6":"","m_lnpjts9fw4":"","i_f5hsv6y7u0":"","v_vzfhvq03bg":""},
  })

    const vid_c91lxpzjh7_props = reactive({
          activeKey: "Tab1",
  })

    const vid_3np6b9tth2_props = reactive({
          dataSource: [],
      current: {},
      currentIndex: -1,
      deleteLineHeight: undefined,
  })

    const vid_u33p047cqw_props = reactive({
          value: "",
  })

    const vid_d1m0u16dt5_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: "",
  })

    const vid_5dqanginau_props = reactive({
          dataSource: [],
      current: {},
      currentIndex: -1,
      deleteLineHeight: undefined,
  })

    const vid_8eacwbz8o2_props = reactive({
          value: "",
  })

    const vid_ot2i17c9gn_props = reactive({
          value: "",
  })

    const vid_iqhjlgmm64_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: "",
  })

    const vid_0jm376a9a1_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: "",
  })

    const vid_bmwl9qiakl_props = reactive({
          selected: {"label":[],"value":[],"option":[]},
      value: "",
  })

    const vid_cvdou6bbju_props = reactive({
          dataSource: [],
      current: {},
      currentIndex: -1,
  })

    const vid_k8d4b3m3ux_props = reactive({
          value: "",
  })

    const vid_qfr317cea4_props = reactive({
          value: "",
  })

    const vid_l4vlzpa9hg_props = reactive({
          value: "",
  })

    const vid_va7sq26olk_props = reactive({
          selected: {"label":"","value":"","option":{}},
      searchValue: undefined,
      value: "",
  })

    const vid_ydy88914uj_props = reactive({
          selected: {"label":[],"value":[],"option":[]},
      value: "",
  })

    const vid_adtzo2ckfq_props = reactive({
          systemSort: [],
      sorter: {},
      editRowSaveLoading: {},
      currentRow: {"reportedBy":"","dailyDate":"","customer":"","workingHours":"","text":"","custom":"","custom2":"","custom3":""},
      selectedRowList: {"dailyDate":[],"custom":[],"custom3":[],"text":[],"custom2":[],"reportedBy":[],"workingHours":[],"customer":[]},
      totalNumber: undefined,
      rt_tableConfig: {"layout":{"showHeader":true,"sticky":false,"operationColumnFixed":"default"},"pagination":{"current":1,"pageSizeOptions":"10,20,30,40","enable":true,"showTotal":true,"hideOnSinglePage":false,"pageSize":"16","simple":false,"sync":true,"showQuickJumper":true,"showSizeChanger":false},"scroll":{"x":"max-content","y":"","scrollToFirstRowOnChange":true},"style":{"contentStyle":{"borderColor":"#D9D9D9","enableContentStyle":true,"fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"evenLineBackColor":"#F8FAFC","textWeight":"400","fontSize":14,"oddLineBackColor":"#FFFFFF","textColor":"#262626"},"paginationStyle":{"layout":"bottomRight","size":"default"},"headerStyle":{"borderColor":"#D9D9D9","backgroundColor":"#3875FF","fontFamily":"arial, helvetica, \"microsoft yahei\"","lintHeight":40,"borderWidth":1,"textWeight":"600","fontSize":14,"enableTextStyle":true,"textColor":"#FFFFFF"}},"basic":{"rowSelection":false,"rowEdit":{"cancelText":"取消","editText":"编辑","saveText":"保存"},"title":"","showSequenceNumber":false,"rowKey":"id"}},
      columnList: [
          {
            id: 'ueq22q8608',
            dataIndex: 'reportedBy',
            headerComment: false,
            title: '项目代号',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'ejrfto1a2m',
            dataIndex: 'dailyDate',
            headerComment: false,
            title: '任务名称',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: '2smxkf0rcn',
            dataIndex: 'customer',
            headerComment: false,
            title: '任务工时',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'NUMBER',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'srhzahbdxe',
            dataIndex: 'workingHours',
            headerComment: false,
            title: '工作内容',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            width: 300,
            resizable: true,
          },
          {
            id: '68gmzlcggb',
            dataIndex: 'text',
            headerComment: false,
            title: '任务工时占比',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'n27g57b2eb',
            dataIndex: 'custom',
            headerComment: false,
            title: '项目投入工时',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TIME',
            contentConfig: {"format":"YYYY-MM-DD","conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'dv6igtobrr',
            dataIndex: 'custom2',
            headerComment: false,
            title: '项目工时占比',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },
          {
            id: 'tkzylws212',
            dataIndex: 'custom3',
            headerComment: false,
            title: '月工时',
            ellipsis: false,
            headerOverflow: 'ellipsis',
            contentAlign: 'left',
            customHeaderCell: () => ({ style: { 'text-align': 'left' } }),
            rowEditConditions: [],
            contentType: 'TEXT',
            contentConfig: {"conditionStyle":[],"boolConfig":"collection"},
            // 使用插槽的列，设置单元格padding为0，padding样式在内容插槽中已加，以便内容插槽设置背景色时可以占满整个单元格；该样式会在计算属性生成列配置时加入customCell
            customCellStyle: { padding: 0 },
            resizable: true,
          },

        ],
      rawColumnList: [],
      // 进行行合并所需的排序规则，必须将其加到排序字段的前面，以实现合并单元格
      rowMergeSort: [
        { order: 'reportedBy', direction: 'ASC' },
  { order: 'custom', direction: 'ASC' },
  { order: 'custom2', direction: 'ASC' },
  { order: 'custom3', direction: 'ASC' },
      ],
      // 完整的排序规则：需要将行合并的排序规则和排序字段的排序规则赋给该属性；调接口时会使用其作为排序条件
      systemSort: [
        { order: 'reportedBy', direction: 'ASC' },
  { order: 'custom', direction: 'ASC' },
  { order: 'custom2', direction: 'ASC' },
  { order: 'custom3', direction: 'ASC' },
      ],
      // 条件格式需要的边界值映射：key为边界值id，value为边界值数据
      boundaryValueMap: {},
      // 表格单元格内容渲染需要的外部数据源：key为列，value为该列单元格的外部数据源配置
      contentDataSource: {},
  })
  // ---------------------------- 定义模型数据 ----------------------------

    const h_nkptwwdgnh = reactive({"r_0bbqey9g6p":"","z_lr68mw8g4h":[{"j_7swh1c51p7":"","h_maxxy7w2z7":""}],"n_7lh1pw6zi5":[{"o_wb0fv0gd20":"","y_61ggz5gd78":"","p_amg1g8bd12":"","m_cxrg674o97":"","t_3csbffeby4":""}],"f_uk1bbft4jy":[{"p_efkhf2ask8":"","f_67s95rxxx6":"","m_lnpjts9fw4":"","i_f5hsv6y7u0":"","v_vzfhvq03bg":""}]})


    const m_ntu81k34ox = reactive({"z_lr68mw8g4h":[{"j_7swh1c51p7":"","h_maxxy7w2z7":""}],"n_7lh1pw6zi5":[{"o_wb0fv0gd20":"","y_61ggz5gd78":"","p_amg1g8bd12":"","m_cxrg674o97":"","t_3csbffeby4":""}],"f_uk1bbft4jy":[{"p_efkhf2ask8":"","f_67s95rxxx6":"","m_lnpjts9fw4":"","i_f5hsv6y7u0":"","v_vzfhvq03bg":""}]})

    // ============================ 定义模型数据 ============================














    const h_nkptwwdgnh_rules = reactive({
          r_0bbqey9g6p: [
          { required: true, message: '工时提交日期!', trigger: 'blur' },
      ],
      j_7swh1c51p7: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      h_maxxy7w2z7: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      o_wb0fv0gd20: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      y_61ggz5gd78: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      p_amg1g8bd12: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      m_cxrg674o97: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      t_3csbffeby4: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      p_efkhf2ask8: [
          { required: true, message: '工作内容!', trigger: 'blur' },
      ],
      f_67s95rxxx6: [
          { required: true, message: '工时!', trigger: 'blur' },
      ],
      m_lnpjts9fw4: [
          { required: true, message: '任务!', trigger: 'blur' },
      ],
      i_f5hsv6y7u0: [
          { required: true, message: '项目名称或代号!', trigger: 'blur' },
      ],
      v_vzfhvq03bg: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
    })














    const m_ntu81k34ox_rules = reactive({
          j_7swh1c51p7: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      h_maxxy7w2z7: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      o_wb0fv0gd20: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      y_61ggz5gd78: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      p_amg1g8bd12: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      m_cxrg674o97: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      t_3csbffeby4: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
      p_efkhf2ask8: [
          { required: true, message: '工作内容!', trigger: 'blur' },
      ],
      f_67s95rxxx6: [
          { required: true, message: '工时!', trigger: 'blur' },
      ],
      m_lnpjts9fw4: [
          { required: true, message: '任务!', trigger: 'blur' },
      ],
      i_f5hsv6y7u0: [
          { required: true, message: '项目名称或代号!', trigger: 'blur' },
      ],
      v_vzfhvq03bg: [
          { required: true, message: '表单项容器!', trigger: 'blur' },
      ],
    })


      // 处理校验
      const setSubFormName =(parentInfo, name)=>{
        return [parentInfo.parents, parentInfo.cycleIndex, name];
      }


    const vid_d1m0u16dt5_options_raw = ref([{"label":"option1","value":"1"},{"label":"option2","value":"2"}])

      const vid_d1m0u16dt5_options = computed(() => {
            return () => vid_d1m0u16dt5_options_raw.value
          })



    const vid_iqhjlgmm64_options_raw = ref([{"label":"option1","value":"1"},{"label":"option2","value":"2"}])

      const vid_iqhjlgmm64_options = computed(() => {
            return () => vid_iqhjlgmm64_options_raw.value
          })



    const vid_0jm376a9a1_options_raw = ref([{"label":"option1","value":"1"},{"label":"option2","value":"2"}])

      const vid_0jm376a9a1_options = computed(() => {
            return () => vid_0jm376a9a1_options_raw.value
          })



    const vid_bmwl9qiakl_options_raw = ref([{"disabled":false,"label":"option1","value":"1"},{"disabled":false,"label":"option2","value":"2"},{"disabled":true,"label":"option3","value":"3"}])

      const vid_bmwl9qiakl_options = computed(() => {
            return () => vid_bmwl9qiakl_options_raw.value
          })



    const vid_va7sq26olk_options_raw = ref([{"label":"option1","value":"1"},{"label":"option2","value":"2"}])

      const vid_va7sq26olk_options = computed(() => {
            return () => vid_va7sq26olk_options_raw.value
          })



    const vid_ydy88914uj_options_raw = ref([{"disabled":false,"label":"option1","value":"1"},{"disabled":false,"label":"option2","value":"2"},{"disabled":true,"label":"option3","value":"3"}])

      const vid_ydy88914uj_options = computed(() => {
            return () => vid_ydy88914uj_options_raw.value
          })



    const vid_adtzo2ckfq_options_raw = ref([])

      const vid_adtzo2ckfq_options = computed(() => {
        return () => vid_adtzo2ckfq_options_raw.value
      })

  // 图表组件 下拉框_7p8heo8f6v 条件格式数据依赖
  const vid_d1m0u16dt5_chartConditionDependencyMap = ref({
  })
  // 图表组件 下拉框_icebebjv3s 条件格式数据依赖
  const vid_iqhjlgmm64_chartConditionDependencyMap = ref({
  })
  // 图表组件 下拉框_87uvpivvon 条件格式数据依赖
  const vid_0jm376a9a1_chartConditionDependencyMap = ref({
  })
  // 图表组件 单选按钮组_rjavhezp2s 条件格式数据依赖
  const vid_bmwl9qiakl_chartConditionDependencyMap = ref({
  })
  // 图表组件 下拉框_go9yd7moxf 条件格式数据依赖
  const vid_va7sq26olk_chartConditionDependencyMap = ref({
  })
  // 图表组件 单选按钮组_sqjj0u5ubt 条件格式数据依赖
  const vid_ydy88914uj_chartConditionDependencyMap = ref({
  })
  // 图表组件 表格_7pocajidec 条件格式数据依赖
  const vid_adtzo2ckfq_chartConditionDependencyMap = ref({
  })
  /* ========================== 属性定义 ========================== */


  /* -------------------------- 元素数据引用 -------------------------- */


  /* ========================== 元素数据引用 ========================== */


  /* -------------------------- 页面数据 -------------------------- */

    // 页面数据 日报信息
    const dataConnector_conn_6yw5f181yh_response = ref();
    const dataConnector_conn_6yw5f181yh = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            partnershipOrCustomerName: vid_709qm9853e_props?.selected.label,
          dailyContent: undefined,
          pageSize: vid_adtzo2ckfq_props?.rt_tableConfig.pagination.pageSize,
          dailyType: undefined,
          delFlag: undefined,
          reportedBy: vid_keadgiurzc_props?.selected.label,
          customerName: '',
          createBy: undefined,
          projectCode: vid_cnooe8izgk_props?.selected.label,
          updateBy: undefined,
          pageNo: vid_adtzo2ckfq_props?.rt_tableConfig.pagination.current,
          dailyDate: vid_hayyohn4fx_props?.value,
          dailyItemId: undefined,
          startingTime: undefined,
          nextPlan: undefined,
          ppmDailyItems: undefined,
          dailyId: undefined,
          endTime: undefined,
          workingHours: undefined,
          taskId: undefined
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/list';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_6yw5f181yh_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 下拉框项目名称
    const dataConnector_conn_6gf8smcq6t_response = ref();
    const dataConnector_conn_6gf8smcq6t = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/queryCustomerName';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_6gf8smcq6t_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 下拉框项目代号
    const dataConnector_conn_v8qovpxhbh_response = ref();
    const dataConnector_conn_v8qovpxhbh = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/queryProjectCode';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_v8qovpxhbh_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 下拉框员工
    const dataConnector_conn_9uq6m4et07_response = ref();
    const dataConnector_conn_9uq6m4et07 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/queryReportedByList';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_9uq6m4et07_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 日报信息(本地)
    const dataConnector_conn_sowjt4gd36_response = ref();
    const dataConnector_conn_sowjt4gd36 = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {
            partnershipOrCustomerName: vid_709qm9853e_props?.selected.label,
          dailyContent: undefined,
          pageSize: vid_adtzo2ckfq_props?.rt_tableConfig.pagination.pageSize,
          dailyType: undefined,
          delFlag: undefined,
          reportedBy: vid_keadgiurzc_props?.selected.label,
          customerName: undefined,
          createBy: undefined,
          projectCode: vid_cnooe8izgk_props?.selected.label,
          updateBy: undefined,
          pageNo: vid_adtzo2ckfq_props?.rt_tableConfig.pagination.current,
          dailyDate: vid_hayyohn4fx_props?.value,
          dailyItemId: undefined,
          startingTime: undefined,
          nextPlan: undefined,
          ppmDailyItems: undefined,
          dailyId: undefined,
          endTime: undefined,
          workingHours: undefined,
          taskId: undefined
          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/list';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return post(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_sowjt4gd36_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


    // 页面数据 下拉框生态伙伴和客户名称
    const dataConnector_conn_cuz3exktnk_response = ref();
    const dataConnector_conn_cuz3exktnk = async (additionParams = {}) => {
        const exec = async () => {
          // 获取参数
          const params = {

          };

          // 注入附加的参数
          try {
            merge(params, additionParams);
          } catch (error) {
            console.log(error)
          }

          // 判断加载提示

          // 处理URL
          let url = '/solution-ppm/api/v2/built-in-system-ppm/daily/queryPartnershipOrCustomerName';
          // 替换url中的变量

          // 排除空参数  日期组件重置后的空参数是[null] 或者[undefined]
          Object.keys(params).forEach(key=>{ if(params[key] === null){ delete params[key] }else if( Object.prototype.toString.call(params[key]) === '[object Object]' ){ Object.keys(params[key]).forEach(childKey=>{ if(params[key][childKey] === null || (Array.isArray(params[key][childKey]) && params[key][childKey].length === 1 && isNullOrUnDef(params[key][childKey]?.[0]))){ delete params[key][childKey] }}) } });
          return get(url, params, {
                headers: undefined
              }).then(async (resp) => {
            dataConnector_conn_cuz3exktnk_response.value = resp;

            return resp;
          }).catch(async (e) => {


            return Promise.reject(e);
          }).finally(async () => {


          })
        }

          return await exec()

    }


  /* ========================== 页面数据 ========================== */



  /* -------------------------- 响应 -------------------------- */

  /* ========================== 响应 ========================== */


  /* -------------------------- 函数 -------------------------- */

  /* ========================== 函数 ========================== */


  /* -------------------------- 页面参数 -------------------------- */

    const pageParameter_state = reactive({
        'processInstanceId': props.processInstanceId ?? route.query.processInstanceId,
    })

  /* ========================== 页面参数 ========================== */


  /* -------------------------- 组件事件处理方法 -------------------------- */

    // ---------------------------- 组件数据同步 ----------------------------
    // 处理 表格_7pocajidec 的 systemList 属性关联
  watch(() => dataConnector_conn_6yw5f181yh_response?.value?.dataList,
    () => {
      let dataList = dataConnector_conn_6yw5f181yh_response?.value?.dataList

      // 处理零代码生成的表格数据，将dataList展开
      const data = dataConnector_conn_6yw5f181yh_response?.value;
      if (data && 'dataList' in data && 'columnList' in data) {
        const newDataList = parseSubFromDataList(dataList);
        if (newDataList.length) {
          dataList = newDataList;
        }
      }

      vid_adtzo2ckfq_options_raw.value = dataList;
    },
    {deep: true})
  // 处理 表格_7pocajidec 的 totalNumber 属性关联
  watch(() => dataConnector_conn_6yw5f181yh_response?.value?.totalElements,
    () => {
      let dataList = dataConnector_conn_6yw5f181yh_response?.value?.totalElements

      vid_adtzo2ckfq_props.totalNumber = dataList;
    },
    {deep: true})
    // ============================ 组件数据同步 ============================

  /**
  * 处理元素 对话框 的 cancel 事件
  */
  let handle_vid_7fet32ae5r_cancel = throttle(async (...params) => {
  vid_7fet32ae5r_props.visible = false;
  }, 500)
  /**
  * 处理元素 对话框 的 ok 事件
  */
  let handle_vid_7fet32ae5r_ok = throttle(async (...params) => {
  vid_7fet32ae5r_props.visible = false;
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_d1m0u16dt5_change = throttle(async (...params) => {
  const [,option] = params;
  vid_d1m0u16dt5_props.selected.label = option?.label;
  vid_d1m0u16dt5_props.selected.value = option?.value;
  vid_d1m0u16dt5_props.selected.option = option;
  vid_d1m0u16dt5_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_d1m0u16dt5_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_d1m0u16dt5_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_iqhjlgmm64_change = throttle(async (...params) => {
  const [,option] = params;
  vid_iqhjlgmm64_props.selected.label = option?.label;
  vid_iqhjlgmm64_props.selected.value = option?.value;
  vid_iqhjlgmm64_props.selected.option = option;
  vid_iqhjlgmm64_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_iqhjlgmm64_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_iqhjlgmm64_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_0jm376a9a1_change = throttle(async (...params) => {
  const [,option] = params;
  vid_0jm376a9a1_props.selected.label = option?.label;
  vid_0jm376a9a1_props.selected.value = option?.value;
  vid_0jm376a9a1_props.selected.option = option;
  vid_0jm376a9a1_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_0jm376a9a1_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_0jm376a9a1_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 单选按钮组 的 change 事件
  */
  let handle_vid_bmwl9qiakl_change = throttle(async (...params) => {
  const [e] = params;
  vid_bmwl9qiakl_props.selected.label = vid_bmwl9qiakl_options.value().find(item => item.value == e.target.value).label;
  vid_bmwl9qiakl_props.selected.value = e.target.value;
  vid_bmwl9qiakl_props.selected.option = vid_bmwl9qiakl_options.value().find(item => item.value == e.target.value);
  vid_bmwl9qiakl_props.selected.optionArray = [{ label: vid_bmwl9qiakl_props.selected.option?.label, value: vid_bmwl9qiakl_props.selected.option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 change 事件
  */
  let handle_vid_va7sq26olk_change = throttle(async (...params) => {
  const [,option] = params;
  vid_va7sq26olk_props.selected.label = option?.label;
  vid_va7sq26olk_props.selected.value = option?.value;
  vid_va7sq26olk_props.selected.option = option;
  vid_va7sq26olk_props.selected.optionArray = [{ label: option?.label, value: option?.value }];
  }, 500)
  /**
  * 处理元素 下拉框 的 search 事件
  */
  let handle_vid_va7sq26olk_search = throttle(async (...params) => {
  const [searchValue] = params;
  vid_va7sq26olk_props.searchValue = searchValue;
  }, 500)
  /**
  * 处理元素 单选按钮组 的 change 事件
  */
  let handle_vid_ydy88914uj_change = throttle(async (...params) => {
  const [e] = params;
  vid_ydy88914uj_props.selected.label = vid_ydy88914uj_options.value().find(item => item.value == e.target.value).label;
  vid_ydy88914uj_props.selected.value = e.target.value;
  vid_ydy88914uj_props.selected.option = vid_ydy88914uj_options.value().find(item => item.value == e.target.value);
  vid_ydy88914uj_props.selected.optionArray = [{ label: vid_ydy88914uj_props.selected.option?.label, value: vid_ydy88914uj_props.selected.option?.value }];
  }, 500)
  /**
  * 处理元素 表格 的 change 事件
  */
  let handle_vid_adtzo2ckfq_change = throttle(async (...params) => {
  // 处理分页器相关数据
  const [pagination, filters, sorter] = params;
  const { current, pageSize } = pagination;
  vid_adtzo2ckfq_props.rt_tableConfig.pagination.current = current;
  vid_adtzo2ckfq_props.rt_tableConfig.pagination.pageSize = pageSize;
  // 处理排序相关数据
  const { field, order } = sorter;
  const sorterList = [...vid_adtzo2ckfq_props.rowMergeSort];
  let sorterValue = {};
  if (order === 'descend') {
  sorterValue = { order: field, direction: 'DESC' }
  } else if (order === 'ascend') {
  sorterValue = { order: field, direction: 'ASC' }
  }
  sorterList.push(sorterValue);
  vid_adtzo2ckfq_props.systemSort = sorterList;
  vid_adtzo2ckfq_props.sorter = sorterValue;
  }, 500)
  /* ========================== 组件事件处理方法 ========================== */


  /* -------------------------- 生命周期 -------------------------- */
  // 用于参数变更后重新执行自定义指令
      const queryUpdateFlag = ref(0);
      onMounted(() => { ;dataConnector_conn_6yw5f181yh()
  dataConnector_conn_6gf8smcq6t()
  dataConnector_conn_v8qovpxhbh()
  dataConnector_conn_9uq6m4et07()
  dataConnector_conn_sowjt4gd36()
  dataConnector_conn_cuz3exktnk()

    });

    onUnmounted(() => {
      // 销毁定时器
      setTimeOutList.forEach(({ repeat, timer }) => {
        repeat ?  clearInterval(timer): clearTimeout(timer);
      });
    });

  /* ========================== 生命周期 ========================== */


  /* -------------------------- 数据关联处理 -------------------------- */





  /* -------------------------- 表单数据同步 -------------------------- */
  /* ========================== 表单数据同步 ========================== */

  /* ========================== 数据关联处理 ========================== */


  /* -------------------------- 不同组件自定义的处理逻辑 -------------------------- */
  immediateWatch(
    () => [m_ntu81k34ox?.h_maxxy7w2z7, vid_d1m0u16dt5_options?.value()],
    () => {
      if(!!handle_vid_d1m0u16dt5_change) {
      const options = (vid_d1m0u16dt5_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.h_maxxy7w2z7 || item.label === m_ntu81k34ox?.h_maxxy7w2z7 )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_d1m0u16dt5_change(m_ntu81k34ox?.h_maxxy7w2z7, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [m_ntu81k34ox?.p_amg1g8bd12, vid_iqhjlgmm64_options?.value()],
    () => {
      if(!!handle_vid_iqhjlgmm64_change) {
      const options = (vid_iqhjlgmm64_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.p_amg1g8bd12 || item.label === m_ntu81k34ox?.p_amg1g8bd12 )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_iqhjlgmm64_change(m_ntu81k34ox?.p_amg1g8bd12, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [m_ntu81k34ox?.m_cxrg674o97, vid_0jm376a9a1_options?.value()],
    () => {
      if(!!handle_vid_0jm376a9a1_change) {
      const options = (vid_0jm376a9a1_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.m_cxrg674o97 || item.label === m_ntu81k34ox?.m_cxrg674o97 )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_0jm376a9a1_change(m_ntu81k34ox?.m_cxrg674o97, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [m_ntu81k34ox?.t_3csbffeby4, vid_bmwl9qiakl_options?.value()],
    () => {
      if(!!handle_vid_bmwl9qiakl_change) {
        const options = (vid_bmwl9qiakl_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.t_3csbffeby4 || item.label === m_ntu81k34ox?.t_3csbffeby4 )
        if (!options) {
          return;
        }
        vid_bmwl9qiakl_props.selected['optionArray'] = [{ label: options?.label, value: options?.value }];
      }
    }
  )
  immediateWatch(
    () => [m_ntu81k34ox?.i_f5hsv6y7u0, vid_va7sq26olk_options?.value()],
    () => {
      if(!!handle_vid_va7sq26olk_change) {
      const options = (vid_va7sq26olk_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.i_f5hsv6y7u0 || item.label === m_ntu81k34ox?.i_f5hsv6y7u0 )
      if(!options) {
        return;
      }
        // 重置了表单，这里重置下拉框
        handle_vid_va7sq26olk_change(m_ntu81k34ox?.i_f5hsv6y7u0, {...options} || {})
      }
    }
  )
  immediateWatch(
    () => [m_ntu81k34ox?.v_vzfhvq03bg, vid_ydy88914uj_options?.value()],
    () => {
      if(!!handle_vid_ydy88914uj_change) {
        const options = (vid_ydy88914uj_options?.value() || []).find((item) => item.value === m_ntu81k34ox?.v_vzfhvq03bg || item.label === m_ntu81k34ox?.v_vzfhvq03bg )
        if (!options) {
          return;
        }
        vid_ydy88914uj_props.selected['optionArray'] = [{ label: options?.label, value: options?.value }];
      }
    }
  )
  onMounted(() => {
    const rawColumnList = []
    traversalTreeStructure(vid_adtzo2ckfq_props.columnList, (node) => {
      if (node.type === 'column') {
        rawColumnList.push(node)
      }
    });
    
    // 获取缓存的表格列宽度，处理列宽信息
    UserTableRecords.getTableRecords(localGet('al__UID')).then((res) => {
      const columnWidthMap = res['vid_adtzo2ckfq'] ?? {};
      rawColumnList.map((column) => {
        if(columnWidthMap[column.dataIndex]) {
          column.width = columnWidthMap[column.dataIndex]
        }
      })
    });
    
    vid_adtzo2ckfq_props.rawColumnList = rawColumnList;
  })
  // 生成表格列：相同分组的数据需要合并单元格
  const vid_adtzo2ckfq_columns = computed(() => {
    // 需要合并单元格的列
    const groupKeys = ['reportedBy', 'custom', 'custom2', 'custom3'];

    // 将表头配置按照groupTitle字段进行分组，以实现多级表头
    const columnList = [...vid_adtzo2ckfq_props.columnList];
    function formatColumns(columns) {
      columns.forEach(item => {
        const { dataIndex, contentAlign, children, customCellStyle } = item;
        // 如果当前列是分组列，则递归处理它的子列，当前列本身不作处理
        if (!dataIndex && children && children.length) {
          formatColumns(children);
          return;
        }

        const groupIndex = groupKeys.findIndex(item => item === dataIndex);
        // 如果当前字段属于分组字段，则给它添加合并单元格的配置，否则直接返回
        if (groupIndex === -1) {
          item.customCell = (record, index) => {
            return { style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        } else {
          item.customCell = (record, index) => {
            const rowGroupKeys = groupKeys.slice(0, groupIndex + 1);
            const rowSpanList = generateRowSpanList(vid_adtzo2ckfq_options.value(), rowGroupKeys,vid_adtzo2ckfq_props.editRecordMap);
            return { rowSpan: rowSpanList[index], style: { 'text-align': contentAlign, ...(customCellStyle || {}) } };
          };
        }
      })
    }

    // 格式化column：增加合并单元格的配置，以及自定义样式
    formatColumns(columnList);

    return columnList;
  });


    // 表格分页器信息：将总条数信息加到基础分页信息中
    const vid_adtzo2ckfq_pagination = computed(() => {
      const { totalNumber, rt_tableConfig } = vid_adtzo2ckfq_props;
      const {
        enable = true,
        current= 1,
        pageSize= 10,
        showSizeChanger= false,
        pageSizeOptions= '10,20,30,40',
        showTotal= false,
        showQuickJumper= false,
        simple= false,
        hideOnSinglePage= false,
      } = rt_tableConfig.pagination ?? {};
      const { size = 'default', layout='bottomRight' } = rt_tableConfig?.style?.paginationStyle || {}
      let info = {};
      if(enable) {
        info = {
          total: totalNumber || 0,
          pageSize,
          size,
          simple,
          current,
          showSizeChanger,
          pageSizeOptions: pageSizeOptions.split(','),
          showQuickJumper,
          hideOnSinglePage,
          position: [layout],
        }
        if(showTotal) {
          info.showTotal = (total, range) => `共${total}个项目，第${current}/${Math.ceil(total / pageSize)}页`
        }
        return info;
      }
      return false;
    })


        // 补充一个watch，用于监听删除最后一页最后一条数据的情况，然后重新加载数据
        watch(() => dataConnector_conn_6yw5f181yh_response?.value?.dataList, (newValue) => {
          const current = vid_adtzo2ckfq_props.rt_tableConfig.pagination.current;
          if (!newValue?.length && current > 1) {
            vid_adtzo2ckfq_props.rt_tableConfig.pagination.current = current - 1;
            dataConnector_conn_6yw5f181yh();
          }
        });
  /**
   * 生成分组字段合并单元格的配置：返回值为一个数字数组，数组里面每一项即为该字段当前行的rowSpan配置
   * @param {Array} 表格中的数据
   * @param {Array} 当前分组字段的列表，注：为了保证优先级低的字段合并后是优先级高的字段合并后的子集，需要把比该字段优先级高的分组字段按顺序放在该字段前面；例如：所有分组字段列表为['grade', 'age', 'score']，要生成age字段的合并单元格配置，则该参数需要传['grade', 'age']
   * @returns {Array} 该字段合并单元格的rowSpan配置，例：[1, 1, 2, 0, 1]
   */
  function generateRowSpanList(dataSource, groupKeys,editRecordMap) {
    if (!dataSource || !dataSource.length) {
      return [];
    }

    const rowSpanList = [];

    // 判断单元格是否需要合并的临时值：使用表格数据最后一行进行初始化（表格数据的遍历是倒序进行的）
    let tempValue = getGroupValue(dataSource[dataSource.length - 1], groupKeys);
    // 记录需要合并单元格的数量
    let tempValueCount = 0;

    // 倒序遍历数组，以保证使用最前面一条数据合并单元格
    for (let index = dataSource.length - 1; index >= 0; index--) {
      rowSpanList[index] = 0;
      const groupValue = getGroupValue(dataSource[index], groupKeys);
      // 如果当前行的分组数据跟上一行一致，则将标记数量加一；否则将标记数量的当前值赋给上一条数据，并重置临时值和标记数量
      if(editRecordMap && editRecordMap[index]){ //如果当前行是编辑行
        rowSpanList[index + 1] = tempValueCount;
        tempValue = "";
        tempValueCount=1;
      }
      else if (groupValue === tempValue) {
        tempValueCount++;
      } else {
        rowSpanList[index + 1] = tempValueCount;
        tempValue = groupValue;
        tempValueCount = 1;
      }

      // 遍历到最后一行，将当前的标记数量赋给当前行
      if (index === 0) {
        rowSpanList[index] = tempValueCount;
      }
    }

    return rowSpanList;
  }

  /**
   * 根据分组字段列表生成当前数据行的分组值
   * @param {Object} 当前数据行
   * @param {Array} 分组字段列表
   * @returns {String} 拼装的当前数据行的分组值，例：record为{ age: 7, grade: '一年级', name: '小赵' }，groupKeys为['grade', 'age']，则拼装后的返回值为'一年级__$__7'
   */
  function getGroupValue(record, groupKeys) {
    const groupValueList = [];
    groupKeys.forEach(groupKey => {
      let val = record[groupKey]
      if (isArray(val)) {
        val = record[groupKey + '_labels']
      } else if (isObject(val)) {
        console.warn('警告表格列数据为object，可能导致行合并异常，列key为：'+ groupKey,val)
      }
      groupValueList.push(`${val}`);
    });
    return groupValueList.join('__$__');
  }

  /**
   * 将列表数据转换成树状数据
   * @param {Array} 原始的列表数据
   * @param {String|Number} 列表数据的唯一key
   * @param {String|Number} 列表数据转成树时的父级id
  */
  function convertListToTree(list, key, parentKey) {
    const clonedList = cloneDeep(list || []);

    // 遍历列表数据，生成树节点的map：key为列表数据的唯一key，value为列表当前行的数据
    const treeNodeMap = {};
    clonedList.forEach(item => {
      treeNodeMap[item[key]] = item;
    });

    const treeDataList = [];
    clonedList.forEach(item => {
      // 如果当前行数据的父级id不在树节点的map中，则当前数据为根节点数据，将其加入最终树形数据的列表；否则将其放入其父节点数据的children中
      if (!treeNodeMap[item[parentKey]]) {
        treeDataList.push(item);
      } else {
        if (!treeNodeMap[item[parentKey]].children) {
          treeNodeMap[item[parentKey]].children = [];
        }
        treeNodeMap[item[parentKey]].children.push(item);
      }
    });

    return treeDataList;
  }

  /**
   * 表格列宽伸缩处理，使用indexedDB缓存伸缩后的列宽度
   */
  const handleResizeColumn = (w, col, vid) => {
    col.width = w;
    
    UserTableRecords.saveTableRecords(col, localGet('al__UID'), vid)
    
  }
  /* ========================== 不同组件自定义的处理逻辑 ========================== */


  // ================================定制化逻辑========================================
</script>
<style lang="less" scoped>
  .page_root {
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color:#F5F6FA;
  }
  .page_root :deep(.@{ant-prefix}-spin-nested-loading),
  .page_root :deep(.@{ant-prefix}-spin-container)
   {
      height: 100%;
  }
  .page_root :deep(.@{ant-prefix}-spin-container .@{ant-prefix}-table-wrapper)
   {
      display: flex;
      flex-flow: column nowrap;
      justify-content: flex-start;
  }
  .page_root :deep(.@{ant-prefix}-table)
   {
    flex: auto;
    overflow: auto;
  }
  .table-moreBtn_down {
    overflow: hidden; white-space: nowrap; text-overflow: ellipsis; width: 100px;
  }

  .table-moreBtn_menu :deep(.table-moreBtn_menu-item):hover {
    background: #ebf1ff;
  }

  /*  表格树结构样式处理，展开按钮层级增加*/
  :deep(.@{ant-prefix}-table-row-expand-icon) {
    z-index: 1;
  }
  /*  表格树结构 由于每个表格项采用自定义组件，使用绝对定位布局，开启树结构导致显示异常，暂时使用层级定位位置 */
  :deep(.@{ant-prefix}-table-row-level-1 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 15px !important;
    width: calc(100% - 15px);
  }
  :deep(.@{ant-prefix}-table-row-level-2 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 30px !important;
    width: calc(100% - 30px);
  }
  :deep(.@{ant-prefix}-table-row-level-3 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 45px !important;
    width: calc(100% - 45px);
  }
  :deep(.@{ant-prefix}-table-row-level-4 .@{ant-prefix}-table-cell-with-append .cell-wrapper-left) {
    left: 60px !important;
    width: calc(100% - 60px);
  }

  /* 穿梭框改变默认样式，为根据组件样式控制左右栏宽度。 */
  :deep(.@{ant-prefix}-transfer-list)
   {
      height: 100%;
      width: 50%;
  }
  .vid_kkv9lo9h9t{
      height:600px;
      overflow-x:auto;
      overflow-y:auto;
      display:block
  }
  .vid_ispq0vs1ru :deep(input) {
        cursor: undefined;
      }
  .vid_ispq0vs1ru{
      width:100%
  }
  .vid_70uh4amu7u{
      height:1px;
      background-color:rgba(225, 228, 237, 1);
      border-color:#E0E0E0
  }
  .vid_py3ac8vcx7{
      margin-top:16px
  }
  .vid_4d8wlqijun{
      padding-left:8px;
      font-weight:600;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_wb8aa1o58o{
      margin-top:16px
  }
  .vid_c91lxpzjh7{
      width:100%;
      font-weight:400;
      font-size:14px;
      box-shadow:0px 0px 0px 0px
  }
  .vid_c91lxpzjh7:active{
      width:100%
  }
  .vid_c91lxpzjh7:focus{
      width:100%
  }
  .vid_c91lxpzjh7:hover{
      width:100%
  }
  .vid_3np6b9tth2{
      width:100%;
      margin-right:8px;
      margin-left:0px;
      padding-right:8px;
      padding-left:0px
  }
  .vid_lva329qy1d{
      padding-right:16px
  }
  .vid_d1m0u16dt5{
      width:100%
  }
  .vid_5dqanginau{
      width:100%;
      margin-right:8px;
      margin-left:0px;
      padding-right:8px;
      padding-left:0px
  }
  .vid_mot1fc4bhe{
      padding-right:16px
  }
  .vid_iqhjlgmm64{
      width:100%
  }
  .vid_9ciqxv31bc{
      padding-right:16px
  }
  .vid_0jm376a9a1{
      width:100%
  }
  .vid_in294urpf3{
      padding-right:16px
  }
  .vid_bmwl9qiakl :deep(span) {
        text-decoration: undefined;
        font-size: undefined;
        line-height: undefined;
        color: undefined;
      }
  .vid_cvdou6bbju{
      width:100%;
      margin-right:8px;
      margin-left:0px;
      padding-right:8px;
      padding-left:0px
  }
  .vid_csojklxhta{
      padding-right:16px
  }
  .vid_6duqfv8xhx{
      padding-right:16px
  }
  .vid_va7sq26olk{
      width:100%
  }
  .vid_e76xv46kag{
      padding-right:16px
  }
  .vid_ydy88914uj :deep(span) {
        text-decoration: undefined;
        font-size: undefined;
        line-height: undefined;
        color: undefined;
      }
  .vid_6iwz2ocdim{
      margin-top:16px;
      padding-top:16px;
      padding-right:24px;
      padding-left:24px;
      background-color:rgba(255, 255, 255, 1)
  }
  .vid_ipdla4ayd4{
      display:flex;
      flex-direction:row-reverse;
      justify-content:flex-start;
      flex-wrap:undefined;
      padding-top:8px
  }
  .vid_ab7quihaj3{
      display:flex;
      align-items:center;
      flex-wrap:undefined;
      padding-top:8px
  }
  .vid_19ogtmwtkw{
      padding-left:8px;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:600;
      color:rgba(38, 38, 38, 1);
      font-size:16px;
      line-height:16px;
      border-left-style:solid;
      border-left-width:4px;
      border-left-color:#3875FF
  }
  .vid_6zqqvkzz4x{
      height:100%;
      overflow-y:auto;
      display:block;
      padding-top:16px;
      padding-right:24px;
      padding-bottom:16px;
      padding-left:24px;
      background-color:#FFFFFF
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-thead) > tr {
      height: 40px;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-thead) > tr > th {
    background: #3875FF;
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 600;
    color: #FFFFFF;
    border-bottom:1px solid #D9D9D9;
    padding: 8px 16px;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr:not(:last-child) > th {
    border-bottom:1px solid #D9D9D9;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th {
    border-right:1px solid #D9D9D9;
  }
  /* 将表格自带的左边框取消，方便设置表头边框颜色和内容边框颜色 */
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container {
    border-left: none;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-thead > tr > th[colstart='0']:first-child {
    border-left:1px solid #D9D9D9;
  }
  /* 开启粘性表头后，表格结构会发生变化 需另外处理 */
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-header table {
    border-top:1px solid #D9D9D9;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container > .@{ant-prefix}-table-content > table {
    border-top:1px solid #D9D9D9;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-thead) > tr > th:not(:last-child):not(.@{ant-prefix}-table-selection-column):not(.@{ant-prefix}-table-row-expand-icon-cell):not([colspan])::before {
      background: #D9D9D9;
      width: 1px;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-cell-scrollbar) {
      box-shadow: none;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-tbody) tr {
    height: 40px;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-tbody) tr > td {
    font-size: 14px;
    font-family: arial, helvetica, "microsoft yahei";
    font-weight: 400;
    color: #262626;
    border-bottom:1px solid #D9D9D9;
    padding: 0 16px;
    word-break: break-all;
    .cell-wrapper {
      padding: 0 16px;
    }
  }

  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-tbody) tr > td .cell-wrapper {
    padding: 0 16px;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
    padding: 0;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn {
    padding: 0 30px 0 0;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table-tbody) tr > td .@{ant-prefix}-btn:last-child {
    padding: 0;
  }
  .vid_adtzo2ckfq :deep(.table-striped-odd) td {
    background-color: #FFFFFF;
  }
  .vid_adtzo2ckfq :deep(.table-striped-even) td {
    background-color: #F8FAFC;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td {
    border-right:1px solid #D9D9D9;
  }
  .vid_adtzo2ckfq :deep(.@{ant-prefix}-table.@{ant-prefix}-table-bordered) .@{ant-prefix}-table-container .@{ant-prefix}-table-tbody tr > td:first-child {
    border-left:1px solid #D9D9D9;
  }
  .vid_adtzo2ckfq{
      width:100%;
      height:100%;
      font-family:arial, helvetica, "microsoft yahei";;
      font-weight:400;
      color:rgba(89, 89, 89, 1);
      font-size:14px;
      background-color:#FFFFFF
  }
  .vid_adtzo2ckfq:active{
      width:100%
  }
  .vid_adtzo2ckfq:focus{
      width:100%
  }
  .vid_adtzo2ckfq:hover{
      width:100%
  }

  :deep(.@{ant-prefix}-table-empty .@{ant-prefix}-table-tbody tr > td) {
   padding: 0;
  }
</style>